﻿/*
 *  Copyright Beijing 58 Information Technology Co.,Ltd.
 *
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License.
 */
//----------------------------------------------------------------------
//<Copyright company="58.com">
//      Team:SPAT
//      Blog:http://blog.58.com/spat/  
//      Website:http://www.58.com
//</Copyright>
//-----------------------------------------------------------------------
using System;
using System.Xml;

namespace Com.Bj58.Spat.Gaea.Client.Configuration.Loadbalance
{
    internal class ServerProfile
    {
        public ServerProfile(XmlNode node)
        {
            this.Name = node.Attributes["name"].Value;
            this.Host = node.Attributes["host"].Value;
            this.Port = int.Parse(node.Attributes["port"].Value);
            XmlAttribute atribute = node.Attributes["weithtRate"];
            if (atribute != null)
                this.WeithtRate = float.Parse(atribute.Value);
            else
                this.WeithtRate = 1;
            atribute = node.Attributes["maxCurrentUser"];
            if (atribute != null)
                this.MaxCurrentUser = int.Parse(atribute.Value);
            else
                this.MaxCurrentUser = 200;
            atribute = node.ParentNode.Attributes["deadTimeout"];
            if (atribute != null)
                this.DeadTimeout = TimeSpan.Parse(atribute.Value);
            else
                this.DeadTimeout = TimeSpan.Parse("00:02:00");
            
        }

        public string Name
        {
            get;
            set;
        }

        public string Host
        {
            get;
            set;
        }

        public int Port
        {
            get;
            set;
        }

        public int MaxCurrentUser
        {
            get;
            set;
        }

        public TimeSpan DeadTimeout
        {
            get;
            set;
        }

        public float WeithtRate
        {
            get;
            set;
        }

    }
}
